package com.sojson.config.init;

import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

import com.sojson.util.DictUtil;
import com.sojson.util.SystemParamUtil;

import lombok.extern.slf4j.Slf4j;

/**
 * 系统参数初始化类
 * 
 * @author liu
 * @date 2020-11-02
 */
@Slf4j
@Component
public class ApplicationInit implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
        log.info("开始执行系统参数初始化操作！");
        initDict();
        initSystemProperties();
        log.info("系统参数初始化操作执行完毕！");
    }

    /**
     * 设置字典
     */
    private void initDict() throws Exception {
        // 开始设置字典
        log.info("开始设置字典！");

        DictUtil.load();

        log.info("字典已加载到缓存！");

        // 设置字典完成
        log.info("系统字典设置完成！");
    }

    /**
     * 设置系统属性
     * @throws Exception 
     */
    private void initSystemProperties() throws Exception {
        // 开始设置系统属性
        log.info("开始设置系统属性！");

        // 加载系统属性到缓存
        SystemParamUtil.load();

        log.info("系统属性已加载到缓存！");

        // 设置系统属性完成
        log.info("系统属性设置完成！");
    }

}